【Leetcode20】Longest Valid Parentheses 有效的括号

[Leetcode20] Valid Parentheses 有效的括号


“The Linux philosophy is “Laugh in the face of danger”.Oops.Wrong One. “Do it yourself”. Yes, that”s it.”
Linux的哲学就是“在危险面前放声大笑”,呵呵,不是这句,应该是“一切靠自己,自力更生”才对。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/**
* 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。
* 有效字符串需满足:
* 左括号必须用相同类型的右括号闭合。
* 左括号必须以正确的顺序闭合。
* 注意空字符串可被认为是有效字符串。
*/
public class leetcode20 {
public boolean isValid (String s) {
if (("").equals(s))
return true;
Stack<Character> stack = new Stack<>();
for (int i = 0; i < s.length(); ++i) {
char c = s.charAt(i);
if (c == '(' || c == '[' || c == '{')
stack.push(c);
else {
if (stack.isEmpty())
return false;
Character peek = stack.peek();
String match = new StringBuilder().append(peek).append(c).toString();
if ("()".equals(match) || "[]".equals(match) || "{}".equals(match))
stack.pop();
else
stack.push(c);
}
}
return stack.isEmpty();
}
}
Thanks!